/*
 * Rank.h
 *
 *  Created on: 2013-2-4
 *      Author: tangwu
 */

#ifndef RANK_H_
#define RANK_H_

#include <string>
using namespace std;

class Rank {
public:
	Rank(int _min_score, int _max_score, int _n);

	/*
	 * @brief 更新用户分数
	 * 某用户原来分数为src_score，更新后分数为des_score
	 */
	virtual bool update(int src_score, int des_score)=0;

	/*
	 * @brief 查询分数为score的人排名第几
	 */
	virtual int query(int score)=0;

	virtual ~Rank(){}
	string get_error_msg();
protected:
	/*
	 * 分数的最小值
	 */
	int min_score;

	/*
	 * 分数的最大值
	 */
	int max_score;

	/*
	 * 用户的数目
	 */
	int n;
	/*
	 * 如果程序运行出错了，表示错误信息
	 */
	string error_msg;
};


#endif /* RANK_H_ */
